/******************************************************************************
 * Copyright (C) 2017 Chengdu Dlhd information industry co. LTD.
 * All Rights Reserved.
 * 本软件为成都顶联互动信息产业有限公司开发研制。未经本公司正式书面同意，其他任何个人、团体不得使用、复制、修改或发布本软件.
 *****************************************************************************/
/**
 * @ClassName: dgg.verify
 * @Description: 顶呱呱JS验证工具类
 * 2017/11/30 汤宏修改
 * @Author 邓明凯
 * @date 2017/11/30 8:54
 *
 */

/*不为空
 * @param obj
 * @param msg
 * @param locationEle 提示定位若不绑定在获取值的元素上的，此参数就传提示定位的元素
 * @returns {boolean}
 */
var onIs = true;
function closeTips(obj) {
    $(obj).focus(function () {
        layer.closeAll("tips");
        onIs = true;
    });
    $(obj).change(function () {
        layer.closeAll("tips");
        onIs = true;
    })
}
function layerTips(tips, obj) {
    if (onIs == true) {
        layer.tips(tips, obj, {
            tipsMore: false,
            tips: 3,
            time: 0
        });
        onIs = false;
    }
}
function addTips(obj) {
    $(obj).addClass("error-tips");
    closeTips(obj);
    return false;
}
//验证内容长度
function isInLength(obj, minLength, maxLength) {
    var objLength = $(obj).val() ? $(obj).val().length : 0;
    if (objLength < minLength || objLength > maxLength) {
        if (objLength < minLength) {
            layerTips("输入内容长度不能小于" + minLength, obj);
        }
        if (objLength > maxLength) {
            layerTips("输入内容长度不能超过" + maxLength, obj);
        }
        addTips(obj);
        return false;
    } else {
        $(obj).removeClass("error-tips");
        return true;
    }
}

function isNull(obj, length) {
    var objVal = $(obj).val();
    objVal = objVal.trim();
    if (objVal == "" || objVal == null) {
        layerTips("输入内容不能为空", obj)
        addTips(obj);
    } else if ((objVal != "" && objVal != null) && (length != "" || length != undefined)) {
        var objLength = $(obj).val().length;
        if (objLength > length) {
            layerTips("输入内容长度不能超过" + length, obj);
            addTips(obj);
        } else {
            $(obj).removeClass("error-tips");
            return true;
        }
    } else {
        $(obj).removeClass("error-tips");
        return true;
    }
}//验证内容不能为空

function number(obj, falg) {
    var objVal = $(obj).val(),
        Number = /^[-\+]?[0-9][0-9]*$/;
    if (falg == false) {
        if (objVal == "" || objVal == null) {
            $(obj).removeClass("error-tips");
            return true;
        } else {
            if (!Number.test(objVal)) {
                layerTips('请输入整数', obj)
                addTips(obj)
            } else {
                $(obj).removeClass("error-tips");
                return true;
            }
        }
    } else {
        if (objVal == "" || objVal == null) {
            layerTips("输入内容不能为空", obj)
            addTips(obj)
            return false;
        } else {
            if (!Number.test(objVal)) {
                layerTips('请输入整数', obj)
                addTips(obj)
            } else {
                $(obj).removeClass("error-tips");
                return true;
            }
        }
    }
}//验证输入为正负整数
function isInterval(obj, maxNum, minNum, falg) {
    var objVal = $(obj).val(),
        Number = /^[-\+]?[0-9][0-9]*$/;
    if (falg == false) {
        if (objVal == "" || objVal == null) {
            $(obj).removeClass("error-tips");
            return true;
        } else {
            if (!Number.test(objVal)) {
                layerTips('请输入' + minNum + "-" + maxNum + "的数值", obj)
                addTips(obj)
            } else if (objVal > parseInt(maxNum)) {
                layerTips('输入数值必须小于' + maxNum, obj)
                addTips(obj)
            } else if (objVal < parseFloat(minNum)) {
                layerTips('输入数值必须大于' + minNum, obj)
                addTips(obj)
            } else {
                $(obj).removeClass("error-tips");
                return true;
            }
        }
    } else {
        if (objVal == "" || objVal == null) {
            layerTips("输入内容不能为空", obj)
            addTips(obj)
        } else {
            if (!Number.test(objVal)) {
                layerTips('请输入数字' + minNum + "-" + maxNum, obj)
                addTips(obj)
            } else if (objVal > parseInt(maxNum)) {
                layerTips('输入数值必须小于' + maxNum, obj)
                addTips(obj)
            } else if (objVal < parseFloat(minNum)) {
                layerTips('输入数值必须大于' + minNum, obj)
                addTips(obj)
            } else {
                $(obj).removeClass("error-tips");
                return true;
            }
        }
    }
} //区间验证

function isIntGte(obj, falg) {
    var objVal = $(obj).val();
    var Number = /^[0-9]\d*$/;
    if (falg == false) {
        if (objVal == "" || objVal == null) {
            $(obj).removeClass("error-tips");
            return true;
        } else {
            if (!Number.test(objVal)) {
                layerTips('请输入大于0的正整数', obj)
                addTips(obj)
            } else {
                $(obj).removeClass("error-tips");
                return true;
            }
        }

    } else {
        if (objVal == "" || objVal == null) {
            layerTips("请输入大于0的正整数", obj)
            addTips(obj);
        } else {
            if (!Number.test(objVal)) {
                layerTips('请输入大于0的正整数', obj)
                addTips(obj);
            } else {
                $(obj).removeClass("error-tips");
                return true;
            }
        }
    }
} //验证大于0的正整数

function isIntGteZero(obj) {
    var objVal = $(obj).val();
    var Number = /^[0-9]\d*$/;
    if (objVal == "" || objVal == null) {
        $(obj).removeClass("error-tips");
        return true;
    } else {
        if (!Number.test(objVal)) {
            layerTips('请输入大于或等于0的正整数', obj)
            $(obj).addClass("error-tips");
            closeTips(obj);
            return false;
        } else {
            $(obj).removeClass("error-tips");
            return true;
        }
    }
} //验证大于或等于0的正整数
function isFloat(obj, float, falg) {
    var objVal = $(obj).val(),
        objFlat = objVal.indexOf("."),
        isFloat = /^[-\+]?\d+(\.\d+)?$/;
    if (falg == false) {
        if (objVal == "" || objVal == null) {
            $(obj).removeClass("error-tips");
            return true;
        } else if (!isFloat.test(objVal)) {
            layerTips('只能包含数字、小数点等字符', obj);
            addTips(obj);
        } else if (float != undefined && objFlat > 0) {
            var flo = objVal.toString().split(".")[1].length
            if (flo > float) {
                layerTips('只能输入小数位' + float + '位以内大于等于0的 小数', obj);
                addTips(obj);
            } else {
                $(obj).removeClass("error-tips");
                closeTips(obj);
                return true;
            }
        } else {
            $(obj).removeClass("error-tips");
            return true;
        }
    } else {
        if (objVal == "" || objVal == null) {
            layerTips('输入内容不能为空', obj);
            addTips(obj);
        } else if (!isFloat.test(objVal)) {
            layerTips('只能包含数字、小数点等字符', obj);
            addTips(obj);
        } else if (float != undefined && objFlat > 0) {
            var flo = objVal.toString().split(".")[1].length
            if (flo > float) {
                layerTips('只能输入小数位' + float + '位以内大于等于0的 小数', obj);
                addTips(obj);
            } else {
                $(obj).removeClass("error-tips");
                closeTips(obj);
                return true;
            }
        } else {
            $(obj).removeClass("error-tips");
            return true;
        }
    }

} //判断浮点型

function isFloatGteZero(obj, float, falg) {
    var objVal = $(obj).val(),
        objFlat = objVal.indexOf("."),
        isFloat = /^\d+(\.\d+)?$/;
    if (falg == false) {
        if (objVal == "" || objVal == null) {
            $(obj).removeClass("error-tips");
            return true;
        } else if (!isFloat.test(objVal)) {
            layerTips('只能包含数字、小数点等字符', obj);
            addTips(obj);
        } else if (float != undefined && objFlat > 0) {
            var flo = objVal.toString().split(".")[1].length
            if (flo > float) {
                layerTips('只能输入小数位' + float + '位以内大于等于0的 小数', obj);
                addTips(obj);
            } else {
                $(obj).removeClass("error-tips");
                closeTips(obj);
                return true;
            }
        } else {
            $(obj).removeClass("error-tips");
            return true;
        }
    } else {
        if (objVal == "" || objVal == null) {
            layerTips('输入内容不能为空', obj);
            addTips(obj);
        } else if (!isFloat.test(objVal)) {
            layerTips('只能包含数字、小数点等字符', obj);
            addTips(obj);
        } else if (float != undefined && objFlat > 0) {
            var flo = objVal.toString().split(".")[1].length
            if (flo > float) {
                layerTips('只能输入小数位' + float + '位以内大于等于0的 小数', obj);
                addTips(obj);
            } else {
                $(obj).removeClass("error-tips");
                closeTips(obj);
                return true;
            }
        } else {
            $(obj).removeClass("error-tips");
            return true;
        }
    }


} //判断大于0的浮点型

function isMobile(obj, falg) {
    var objVal = $(obj).val(),
        MobileNum = /^[1][3,4,5,7,8][0-9]{9}$/;
    if (falg == false) {
        if (objVal == "" || objVal == null) {
            $(obj).removeClass("error-tips");
            return true;
        } else {
            if (!MobileNum.test(objVal)) {
                layerTips('请正确填写手机号码', obj);
                addTips(obj);
            } else {
                $(obj).removeClass("error-tips");
                closeTips(obj);
                return true;
            }
        }
    } else {
        if (objVal == "" || objVal == null) {
            layerTips("输入内容不能为空", obj)
            addTips(obj);
        } else {
            if (!MobileNum.test(objVal)) {
                layerTips('请正确填写手机号码', obj);
                addTips(obj);
            } else {
                $(obj).removeClass("error-tips");
                closeTips(obj);
                return true;
            }
        }
    }

} //验证手机号码

function isPhone(obj) {
    var objVal = $(obj).val();
    var patrn = /^(\d{3,4}\-)?\d{7,8}$/i; // 座机格式是 010-98909899
    var par_tten = /^0(([1-9]\d)|([3-9]\d{2}))\d{8}$/; // 没有中间那段 -的 座机格式是 01098909899
    if (objVal == "" || objVal == null) {
        $(obj).removeClass("error-tips");
        return true;
    } else {
        if (!patrn.test(objVal) || !patrn.test(par_tten)) {
            layerTips('请正确填写电话号码', obj);
            $(obj).addClass("error-tips");
            closeTips(obj);
            return false;
        } else {
            $(obj).removeClass("error-tips");
            closeTips(obj);
            return true;
        }
    }
} //验证电话号码

function isTel(obj) {//既验证手机号也验证座机号
    var objVal = $(obj).val(),
    // MobileNum = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/,
        MobileNum = /^[1][3,4,5,7,8][0-9]{9}$/;
    var patrn = /^(\d{3,4}\-)?\d{7,8}$/i; // 座机格式是 010-98909899
    var par_tten = /^0(([1-9]\d)|([3-9]\d{2}))\d{8}$/; // 没有中间那段 -的 座机格式是 01098909899
    if (par_tten.test(objVal) || patrn.test(objVal) || MobileNum.test(objVal)) {
        $(obj).removeClass("error-tips");
        closeTips(obj);
        return true;
    } else {
        layerTips('请正确填写电话号码', obj);
        $(obj).addClass("error-tips");
        closeTips(obj);
        return false;
    }
}

function isQq(obj) {
    var objVal = $(obj).val(),
        QqNum = /^[1-9]\d{4,12}$/;
    if (objVal == "" || objVal == null) {
        $(obj).removeClass("error-tips");
        return true;
    } else {
        if (!QqNum.test(objVal)) {
            layerTips('请正确QQ号码', obj);
            $(obj).addClass("error-tips");
            closeTips(obj);
            return false;
        } else {
            $(obj).removeClass("error-tips");
            return true;
        }
    }
} //验证QQ号码
function isMail(obj) {
    var objVal = $(obj).val(),
        mailreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
    if (objVal == "" || objVal == null) {
        $(obj).removeClass("error-tips");
        return true;
    } else {
        if (!mailreg.test(objVal)) {
            layerTips('请正确邮箱地址', obj);
            $(obj).addClass("error-tips");
            closeTips(obj);
            return false;
        } else {
            $(obj).removeClass("error-tips");
            return true;
        }
    }
} //验证QQ号码

function isIdCardNo(obj) {
    var objVal = $(obj).val();
    var len = objVal.length,
        re;
    if (objVal == "" || objVal == null) {
        $(obj).removeClass("error-tips");
        return true;
    } else {
        if (len == 15)   re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{2})(\w)$/);
        else if (len == 18)   re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\w)$/);
        else {
            layerTips("输入正确身份证号码", obj);
            $(obj).addClass("error-tips");
            closeTips(obj)
            return false;
        }
        var a = objVal.match(re);
        if (a != null) {
            if (len == 15) {
                var D = new Date("19" + a[3] + "/" + a[4] + "/" + a[5]);
                var B = D.getYear() == a[3] && (D.getMonth() + 1) == a[4] && D.getDate() == a[5];
            }
            else {
                var D = new Date(a[3] + "/" + a[4] + "/" + a[5]);
                var B = D.getFullYear() == a[3] && (D.getMonth() + 1) == a[4] && D.getDate() == a[5];
            }
            if (!B) {
                layerTips("输入的身份证号出生日期不对", obj);
                $(obj).addClass("error-tips");
                closeTips(obj);
                return false;
            }
        }
        if (!re.test(objVal)) {
            layerTips("请输入正确身份证号码", obj);
            $(obj).addClass("error-tips");
            closeTips(obj);
            return false;
        }
        if (re.test(objVal)) {
            $(obj).removeClass("error-tips");
        }
        return true;
    }
}